The present invention relates generally to a storage controlling apparatus and, more particularly, to a storage controlling apparatus to control a disk storage device having a rotary type storage medium, such as a floppy disk, a magnetic disk, an optical disk and a magneto-optic disk.
Further, the present invention relates generally to a method of controlling a disk storage device and, more particularly, to a method of controlling the disk storage device having a rotary type storage medium, such as floppy disk, a magnetic disk, an optical disk and a magneto-optic disk.
Moreover, the present invention relates generally to a method of managing compressed data and, more particularly, to a method of managing compressed data in a disk storage device having a rotary type storage medium, such as a floppy disk, a magnetic disk, an optical disk and a magneto-optic disk.
With an advancement of software and a spread of multimedia, the data in a variety of forms such as images, voices, fonts, etc. are dealt with. Then, a disk storage device having a larger storage capacity is demanded to store such data.
Successive introductions of the disk storage devices having large storage capacities are not economical, and a change in the system involves a loss of time, which is not an ignorable aspect.
Then, there is developed a technology of apparently increasing the capacity of the disk storage device by compressing the data (hereinafter simply expressed by a compression) instead of an augment in a capacity of the disk storage device. This data compression is conducted by use of software on one hand and by use of hardware on the other hand.
The software-assisted compression is actualized as one function of, e.g., an OS (Operating System). Then, when an application outputs an item of write data, the data is automatically compressed and recorded on a disk recording device.
On the other hand, the hardware-assisted compression is actualized as one function of an apparatus interposed between a host (computer, etc.) and the disk recording device. Such an apparatus is termed a in the present specification.
According to this storage controlling apparatus, the write data outputted from the host is compressed and written (recorded) to the disk storage device. A record position of the write data after being compressed is, however, normally different from a write position designated from the host.
It is because a data length of the post-compression write data is normally smaller than a data length of the write data outputted from the host. Therefore, if the post-compression write data is recorded in the write position designated from the host, an unused record area is generated, with the result that the disk storage device is not effectively employed.
Then, it is required that the disk storage device be effectively used by recording the compressed data in a position different from the write position designated from the host. This kind of technique is called a in the present specification.
For example, a CFS (Cluster File System), an LFS (Log File System), a fixed mapping system, etc., are known as a compressed data management.
Based on the CFS, one or more pieces of write data are assembled into one item of data and thereafter compressed, thereby generating the data known as a compressed segment. Then, these compressed segments are classified according to sizes (data lengths) thereof. Subsequently, the compressed segments each having the same size are recorded on the disk recording device, thus, managing the compressed data. Note that a size of the compressed segment serves to determine which area on the disk recording device to record the compressed segment.
According to the LFS, each time the data is updated, the updated data is written to a rearmost area on the disk storage device that is now used, and the pre-updating compressed data is invalidated. Then, cleaning (rearrangement) such as a garbage collection, etc. is executed for a null time, and invalid data extending from a head down to a rearmost area are compacted, thus, managing the compressed data.
According to the fixed mapping system, the compressed data are managed by making use of a mapping table created in accordance with (preset) stages of compression ratios of the compressed data. The fixed mapping system requires an exceptional process for the data compressed at a compression ratio under the set compression ratio. The exceptional process may be a process of writing the data having an unexpected data length in an area secured otherwise.
In the case of the above software-assisted compression, a CPU time consumes for the compression processing, resulting in such a defect that an extra load is applied on the CPU.
On the other hand, in the case of the hardware-assisted compression, though no extra load is applied on the CPU, the following problems arise.
To start with, the CFS has a possibility in which a seek happens many times because of a record position on the disk storage device being different per compressed segment, and a reading/writing performance declines. Further, when the area for recording the compressed segment having a given size (data length) is full of the compressed segments, the problem is how the compressed segments of the same size are recorded.
Next, the LFS presents a problem in which a usability remarkably declines due to a temporary inaccessibility from the host during the cleaning operation.
The present invention relates to a storage controlling apparatus capable of performing a software-unassisted compression by controlling a disk storage device.
Further, the present invention relates to a method of controlling a disk storage device for performing the software-unassisted compression.
Moreover, the present invention relates to a method of managing compressed data that is capable of making a compression ratio effective, avoiding a decline of usability due to cleaning and optimizing a seek.
The present invention provides a method of managing compressed data in a disk storage device, including: setting an occupation ratio of a continuous area for storing compression blocks in the disk storage device with respect to a total disk storing area, wherein the continuous area is set as a part of the disk storage area of the disk storage device and is divided into a plurality of compressed segment areas capable of storing compression blocks of all sizes, each optimized for storing compression blocks; deciding a range of size of compression blocks to be allocated to each compressed segment area, respectively; determining an occupation ratio of each compressed segment area with respect to the continuous area; forming the plurality of compressed segment areas in the continuous area according to said determined occupation ratio of the continuous area; obtaining a compression block corresponding to data to be stored in the disk storage device; deciding a compressed segment area to which the obtained compression block is to be stored according to the size of the obtained compression block; storing the obtained compression block in the decided compressed segment area; maintaining record conditions of compression blocks for each compressed segment area every time when a compression block is recorded in the compressed segment areas; forming a next continuous area on the disk storage area when one of said compressed segment areas of the continuous area is filled with at least one compression block; and determining occupation ratios of each compressed segment area formed on the next continuous area based on occupation ratios of at least one compression block being stored in each of said compressed segment areas of the continuous area.
The present invention provides a method of managing compressed data in a disk storage device, including: specifying one of a plurality of cylinders in a disk storage device as a first area for forming a plurality of compressed segment areas for storing compression blocks of data of any size; deciding a range of size of compression blocks to be stored in each compressed segment area; determining an occupation ratio of each compressed segment area with respect to the first area corresponding to a recordable area of the specified cylinder; forming the plurality of compressed segment areas in the first area according to the determined occupation ratio of each compressed segment area; obtaining a compression block of data to be stored in the disk storage device; deciding a compressed segment area to which the obtained compression block is to be stored according to the size of the obtained compression block; storing the obtained compression block in the decided compressed segment area; maintaining record conditions of compression blocks for each compressed segment area every time when a compression block is recorded in any of the compressed segment areas; specifying another cylinder in the disk storage device as a second area for forming a plurality of next compressed segment areas when one of the compressed segment areas is filled with at least one compression block; and deciding an occupation ratio of each next compressed segment area formed on the second area based on occupation ratios of at least one compression block being stored in each of said compressed segment areas of said first area.
The present invention provides a compressed data managing apparatus for managing a plurality of compression blocks by assembling a plurality of pieces of data requested of writing and thereafter compressing the assembled data, including: a first deciding portion deciding an occupation ratio of a first continuous area with respect to a total recordable area of a disk storage device, wherein the first continuous area is formed in a part of the recordable area of the disk storage device and is divided into a plurality of compressed segment areas each for recording compression blocks according to a size thereof; a second deciding portion deciding a range of size of a compression block to be allocated to each compressed segment area, respectively; a third deciding portion deciding an occupation ratio of each compressed segment area with respect to the first continuous area according to the decided range of the size of each compression block; a forming portion forming the first continuous area and the plurality of compressed segment areas into the recordable area according to said decided occupation ratio of the first continuous area and said decided occupation ratio of each compressed segment area; an obtaining portion obtaining a compression block from a plurality of pieces of data requested of writing; a fourth deciding portion deciding a compressed segment area to which is allocated a range of size corresponding to the size of the obtained compression block; a recording portion recording the obtained compression block in the decided compressed segment area; and a maintaining portion maintaining record conditions of compression blocks for each compressed segment area every time when a compression block is recorded in any of the compressed segment areas, wherein said forming portion forms a second continuous area divided into a plurality of next compressed segment areas when one of the compressed segment areas filled with at least one compression block, and said third deciding portion decides an occupation ratio of each next compressed segment area of the second continuous area based on occupation ratios of at least one compression block being stored in each of said compressed segment areas of the first continuous area.
The present invention provides a method of managing compressed data of a compressed data management apparatus recording a plurality of compression blocks in a record area of a disk storage device, wherein each compression block is compressed data that is generated by assembling and compressing a plurality of original data, the method including: deciding a number of a plurality of compressed segment areas for respectively recording at least one compression block and formed in the record area, a size of a compression block recorded in each compressed segment area, and a size of each compressed segment area as decided contents; forming new compressed segment areas based on the decided contents by said operation of deciding when any one of the compressed segment areas is filled with at least one compression block; and deciding a size of each new compressed segment area based on occupation ratios of at least one compression block being stored in each compressed segment area previously formed in the record area.
The present invention provides a compressed data management apparatus to store compressed data as compression blocks in a record area of a disk storage device having a recording area, including: a deciding portion deciding a number of compressed segment areas to be formed on a first area formed in a part of the recording area of the disk storage device for storing compression blocks of data of any size, and a size of each compressed segment area as decided contents; a forming portion forming the plurality of compressed segment areas in the first area of the disk storage device; a storing portion storing a compression block in a compressed segment area in accordance with a size of the compression block; a forming portion forming a second area in part of the recording area when one of compressed segment areas of the first area is filled with at least one compression block; and a second deciding portion deciding a size of each of new compressed segment areas formed on the second area based on occupation ratios of at least one compression block being stored in each compressed segment area of the first area.
The present invention provides a method of managing compressed data in a disk storage device, including: defining a continuous area of the disk storage device into a plurality of compressed segment areas capable of storing compression blocks of any size, each compressed segment area to respectively store compression blocks of a predetermined size, wherein the continuous area is formed as a part of the recordable area of the disk storage device; storing a plurality of compression blocks of respective different size into corresponding compressed segment areas in the defined continuous area; monitoring occupation ratios of each compressed segment area, wherein each respective occupation ratio is a ratio of the area of the compressed segment area physically occupied by compression blocks; defining a second continuous area in a part of the recordable area of the disk storage device when one of the compressed segment areas of the continuous area is filled with at least one compression block; and defining the second continuous area of the disk storage device into a plurality of compressed segment areas, wherein sizes of each compressed segment area in the second continuous area are determined based on occupation ratios of at least one compression blocks stored in each compressed segment area of the first continuous area.